package leetcode_800;

/**
 *@author 周杨
 *GlobalAndLocalInversions_775 问全局反转和局部反转的数量是否相等
 *describe:要搞清楚局部反转是全局反转的一部分 而且局部反转是有上限的 AC 22%
 *2018年10月20日 上午9:52:21
 */
public class GlobalAndLocalInversions_775 {
	
	/**
	 * describe:局部反转是全局反转的一部分  如果全局超过了局部 那么就不等
	 * 2018年10月20日 上午9:51:33
	 */
	public boolean isIdealPermutation(int[] A) {

		for (int i = 0; i < A.length; i++) {
			if (Math.abs(i - A[i]) > 1)
				return false;
		}

		return true;
    }
	
	/**
	 * describe:思想错误 【2,1,0】
	 * 2018年10月20日 上午9:41:07
	 */
	public boolean isIdealPermutation1(int[] A) {
		int globa=0,temp=0;
        for(int i=0;i<A.length-1;++i) {
        	if(A[i]>A[i+1]) ++temp;
        	if(A[i]-i>0) globa+=A[i]-i;
        }
        int diff=A[A.length-1]-A.length+1;
        if(diff>0)
        	globa+=diff;
        return globa==temp;
    }
}
